package algo3.pruebas.barcosTest;
import algo3.modelo.Direccion;
import algo3.modelo.Posicion;
import algo3.modelo.armas.Danio;
import algo3.modelo.armas.DisparoConvencional;
import algo3.modelo.barcos.Barco;
import algo3.modelo.barcos.Buque;

public class BuqueTest extends BarcoAbstractTestConHerencia{
	
	public Barco crearBarco(Posicion unaPosicion, Direccion direccion, Direccion orientacion){
		Barco unBarco = new Buque(unaPosicion, direccion, orientacion);
		return unBarco;
	}
	
	public void testEsDeTamanioCuatro(){
		Posicion unaPosicion = new Posicion (1,2);
		Barco unBuque = new Buque(unaPosicion,Direccion.DERECHA,Direccion.DERECHA);
		assertEquals(4, unBuque.getTamanio());
		assertEquals(4, unBuque.posicionesOcupadas().size());
	}

	public void testUnaParteDestruidaDestruyeBarco(){
		Posicion unaPosicion = new Posicion(1, 2);
		Barco unBuque = new Buque(unaPosicion, Direccion.DERECHA, Direccion.DERECHA);
		unBuque.recibirDanio(new Danio(new Posicion(1, 2), DisparoConvencional.class));
		assertEquals(Barco.Estado.HUNDIDO, unBuque.getEstado());
	}
}
